package demo05Consumer;

import java.util.function.Consumer;

/**
 * @author shkstart
 * @create 2020-05-01 14:04
 *//*
    练习:
        字符串数组当中存有多条信息，请按照格式“姓名：XX。性别：XX。”的格式将信息打印出来。
        要求将打印姓名的动作作为第一个Consumer接口的Lambda实例，
        将打印性别的动作作为第二个Consumer接口的Lambda实例，
        将两个Consumer接口按照顺序“拼接”到一起。
 */
public class Demo03Test {
    //定义一个方法,方法的参数传递一个字符串和两个Consumer接口,Consumer接口的泛型使用字符串
    public static void printInfo(String[] arr, Consumer<String> con1,Consumer<String> con2){
        //遍历字符串数组
        for (String message : arr) {
            //使用andThen方法连接两个Consumer接口,消费字符串
            con1.andThen(con2).accept(message);
        }
    }

    public static void main(String[] args) {
        //定义一个字符串类型数组
        String[] arr = {"迪丽热巴,18","古力娜扎,18","马尔扎哈,20"};

        //调用printInfo方法，传递一个字符串数组,和两个Lambda表达式
        printInfo(arr,
                (t)->{
            //消费方式:对message进行切割,获取姓名，按照指定格式输出
                   String name =  t.split(",")[0];
                    System.out.print("姓名:" + name);
                },
                (t)->{
            //消费方式:对message进行切割,获取年龄，按照指定格式输出
                    String age =  t.split(",")[1];
                    System.out.print(".年龄:" + age + ".");
                });
    }
}
